/**
 * Copyright (c) 快宝网络 kuaidihelp.com Co., Ltd. All Rights Reserved 禁止外泄以及用于其它的商业用途
 */

import { reloadAuthorized } from './Authorized';
import { setStorage, getStorage } from './utils';

// use localStorage to store the authority info, which might be sent from server in actual project.
export function getAuthority(str?: string): string | string[] {
  let authority;
  try {
    const authorityString = typeof str === 'undefined' ? getStorage('authority') : str;
    if (authorityString) {
      authority = authorityString;
    }
  } catch (e) {
    authority = '';
  }
  if (typeof authority === 'string') {
    return [authority];
  }
  // preview.pro.ant.design only do not use in your production.
  // preview.pro.ant.design 专用环境变量，请不要在你的项目中使用它。
  if (!authority && ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site') {
    return ['admin'];
  }
  return authority;
}

export function setAuthority(authority: string | string[]): void {
  const proAuthority = typeof authority === 'string' ? [authority] : authority;
  setStorage('authority', proAuthority);
  // auto reload
  reloadAuthorized();
}
